//欢迎界面
const {promisify} = require('util');
const figlet = promisify(require('figlet'));
const clear = require('clear');
const chalk = require('chalk');
const log = content=>console.log(chalk.green(content));
const {clone} = require('./download');
const {open} = require('open');

const spawn = async(...args) => {
    const {spawn} = require('child_process');
    return new Promise(resolve=>{
        //输出流 子进程 合并到主进程
        const proc = spawn(...args);
        proc.stdout.pipe(process.stdout);
        proc.stderr.pipe(process.stderr);
        proc.on('close',()=>{
            resolve();
        })
    })
}


module.exports = async (name) =>{
    clear();
    const data = await figlet.textSync('Welcome JYH~',{
        font:"Ghost",
        horizontalLayout:"default",
        whitespacebreak:true,

    });
    log(data);

    //项目模板
    log('创建项目'+ name);
    //await clone('github:su37josephxia/vue-template',name);

    //下载依赖
    //子进程
    log('安装依赖....');

    log(chalk.green(`
    安装完成：
    To get Start:
    ==============================
        cd ${name}
        npm run Server
    ==============================`
        ));

    open('http://localhost:8080');
    await spawn('npm',['run','serve'],{cwd :`./${name}`});

}